home *** CD-ROM | disk | FTP | other *** search
- # Copyright 1999-2005 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- # $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.3.6.ebuild,v 1.15 2005/10/07 02:01:56 eradicator Exp $
-
- MAN_VER=""
- PATCH_VER="1.3"
- UCLIBC_VER="1.0"
- PIE_VER="8.7.8"
- PP_VER="1.0"
- HTB_VER="1.00-r1"
-
- ETYPE="gcc-compiler"
-
- # arch/libc configurations known to be stable with {PIE,SSP}-by-default
- SSP_STABLE="x86 sparc amd64"
- SSP_UCLIBC_STABLE="arm mips ppc x86"
- PIE_GLIBC_STABLE="x86 sparc amd64"
- PIE_UCLIBC_STABLE="x86 mips ppc"
-
- # arch/libc configurations known to be broken with {PIE,SSP}-by-default
- SSP_UNSUPPORTED="hppa"
- SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}"
- PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc"
- PIE_GLIBC_UNSUPPORTED="hppa"
-
- # whether we should split out specs files for multiple {PIE,SSP}-by-default
- # and vanilla configurations.
- SPLIT_SPECS=${SPLIT_SPECS-true}
-
- #GENTOO_PATCH_EXCLUDE=""
- #PIEPATCH_EXCLUDE=""
-
- inherit toolchain eutils
-
- DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking"
-
- # ia64 - broken static handling; USE=static emerge busybox
- KEYWORDS="-* ~alpha ~amd64 ~hppa -ia64 ~sparc x86"
-
- # NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper
- # .eh_frame ld optimisation and symbol visibility support, but it hasnt been
- # well tested in gentoo on any arch other than amd64!!
- RDEPEND="|| ( app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.10 )
- >=sys-libs/zlib-1.1.4
- !sys-devel/hardened-gcc
- elibc_glibc? ( >=sys-libs/glibc-2.3.2-r9 )
- >=sys-devel/binutils-2.14.90.0.6-r1
- >=sys-devel/bison-1.875
- amd64? ( multilib? ( >=app-emulation/emul-linux-x86-glibc-1.1 ) )
- sparc? ( hardened? ( >=sys-libs/glibc-2.3.3.20040420 ) )
- !build? (
- gcj? (
- gtk? ( >=x11-libs/gtk+-2.2 )
- >=media-libs/libart_lgpl-2.1
- )
- >=sys-libs/ncurses-5.2-r2
- nls? ( sys-devel/gettext )
- )"
-
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then
- RDEPEND="${RDEPEND} ${CATEGORY}/binutils"
- fi
-
- DEPEND="${RDEPEND}
- >=sys-apps/texinfo-4.2-r4
- amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )"
- PDEPEND="|| ( app-admin/eselect-compiler sys-devel/gcc-config )"
-
- src_unpack() {
- gcc_src_unpack
-
- if [[ -n ${UCLIBC_VER} ]] && is_uclibc ; then
- mv ${S}/gcc-3.3.2/libstdc++-v3/config/os/uclibc ${S}/libstdc++-v3/config/os/ || die
- mv ${S}/gcc-3.3.2/libstdc++-v3/config/locale/uclibc ${S}/libstdc++-v3/config/locale/ || die
- fi
-
- # misc patches that havent made it into a patch tarball yet
- [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
- epatch "${FILESDIR}"/3.3.6/gcc-3.3.6-cross-compile.patch
-
- # Anything useful and objc will require libffi. Seriously. Lets just force
- # libffi to install with USE="objc", even though it normally only installs
- # if you attempt to build gcj.
- if ! use build && use objc && ! use gcj ; then
- epatch ${FILESDIR}/3.3.4/libffi-without-libgcj.patch
- #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch
- fi
-
- [[ $(tc-arch) == "amd64" ]] && \
- replace-cpu-flags k8 athlon64 opteron i686
- }
-